package com.example.student.service;

import com.example.student.entity.SysUser;
import com.example.student.model.PageResult;
import com.example.student.model.PasswordUpdateDTO;
import com.example.student.model.UserVO;

import java.util.List;

public interface UserService {

    /**
     * 获取当前登录用户信息
     */
    UserVO getCurrentUser();

    /**
     * 更新用户信息
     */
    void updateUserInfo(SysUser user);

    /**
     * 修改密码
     */
    void changePassword(PasswordUpdateDTO passwordUpdateDTO);

    /**
     * 获取用户列表
     */
    PageResult<UserVO> getUserList(String username, String realName, Integer status, Integer pageNum, Integer pageSize);

    /**
     * 获取用户详情
     */
    UserVO getUserById(Long id);

    /**
     * 添加用户
     */
    void addUser(SysUser user);

    /**
     * 更新用户
     */
    void updateUser(SysUser user);

    /**
     * 删除用户
     */
    void deleteUser(Long id);

    /**
     * 重置用户密码
     */
    void resetPassword(Long id);

    /**
     * 更新用户状态
     */
    void updateStatus(Long id, Integer status);

    /**
     * 分配角色给用户
     */
    void assignRoles(Long userId, List<Long> roleIds);
} 